package org.jeecg.modules.business.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 会议室预定表
 * </p>
 *
 * @author fendo
 * @since 2023-03-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bus_meeting_room_schedule")
public class BusMeetingRoomSchedule extends Model<BusMeetingRoomSchedule> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 关联租户
     */
    private String tenantId;

    /**
     * 关联酒店
     */
    private String hotelId;

    /**
     * 公司名称
     */
    private String name;

    /**
     * 会议主题
     */
    private String theme;

    /**
     * 预定人姓名
     */
    private String destinedName;

    /**
     * 联系电话
     */
    private String mobile;

    /**
     * 备注
     */
    private String remark;

    /**
     * 账单状态
     */
    private Integer billStatus;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDateTime createTime;

    /**
     * 支付类型 1直接自付 2挂房账
     */
    private Integer payType;
    /**
     * 金额
     */
    private BigDecimal amount;
    /**
     * 入账到房间单号id
     */
    private String settleRoomOrderNo;
    /**
     * 创建人
     */
    private String createId;
    /**
     * 订单号
     */
    private String orderNo;

    public static final String ID = "id";

    public static final String TENANT_ID = "tenant_id";

    public static final String HOTEL_ID = "hotel_id";

    public static final String NAME = "name";

    public static final String THEME = "theme";

    public static final String DESTINED_NAME = "destined_name";

    public static final String MOBILE = "mobile";

    public static final String REMARK = "remark";

    public static final String BILL_STATUS = "bill_status";

    public static final String CREATE_TIME = "create_time";

    public static final String PAY_TYPE = "pay_type";
    public static final String AMOUNT = "amount";
    public static final String SETTLE_ROOM_ORDER_NO = "settle_room_order_no";
    public static final String CREATE_ID = "create_id";
    public static final String ORDER_NO = "order_no";

    @Override
    public Serializable pkVal() {
        return this.id;
    }


    @TableField(exist = false)
    private List<BusMeetingRoomScheduleOrderDetail> orderDetailList;
    @TableField(exist = false)
    private Integer confirmStatus;

    @TableField(exist = false)
    private List<BusRoomPayType> paymentMethodList;
    @TableField(exist = false)
    private BigDecimal preferentialAmount;
    @TableField(exist = false)
    private String contactName;
}
